// 1. 叶子节点的定义是左孩子和右孩子都为 null 时才叫做叶子节点
// 2. 当 root 节点孩子都为空时，返回 1
// 3. 当 root 节点左右孩子有一个为空时，返回不为空的孩子节点的深度
// 4. 当 root 节点左右孩子都不为空时，返回左右孩子较小深度的节点值
// 叶子节点是指没有子节点的节点，这句话的意思是 1 不是叶子节点

var minDepth = function (root) {
  if (root === null) return 0;
  let left = minDepth(root.left);
  let right = minDepth(root.right);

  if (left > 0 && right > 0) {
    return 1 + Math.min(left, right);
  } else if (left > 0) {
    return 1 + left;
  } else if (right > 0) {
    return 1 + right;
  } else {
    return 1;
  }
};